import {
	app,
	BrowserWindow,
	Menu
} from 'electron'

const isDevelopment = process.env.NODE_ENV !== 'production'

async function createWindow() {
	const win = new BrowserWindow({
		width: 920,
		height: 650,
		webPreferences: {

			// Use pluginOptions.nodeIntegration, leave this alone
			// See nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration for more info
			nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION,
			contextIsolation: !process.env.ELECTRON_NODE_INTEGRATION
		},
	})

	if (process.env.VITE_DEV_SERVER_URL) {
		win.loadURL(process.env.VITE_DEV_SERVER_URL)
	} else {
		win.loadFile('dist/index.html')

		// 加入此行，开启自动化更新
		log.transports.file.level = 'debug'
	}

	//菜单静用
	Menu.setApplicationMenu(null)



}

// Quit when all windows are closed.
app.on('window-all-closed', () => {
	// On macOS it is common for applications and their menu bar
	// to stay active until the user quits explicitly with Cmd + Q
	if (process.platform !== 'darwin') {
		app.quit()
	}
})

app.on('activate', () => {
	// On macOS it's common to re-create a window in the app when the
	// dock icon is clicked and there are no other windows open.
	if (BrowserWindow.getAllWindows().length === 0) createWindow()
})

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', async () => {
	// if (isDevelopment && !process.env.IS_TEST) {
	//   // Install Vue Devtools
	//   try {
	//     await installExtension(VUEJS3_DEVTOOLS)
	//   } catch (e) {
	//     console.error('Vue Devtools failed to install:', e.toString())
	//   }
	// }
	createWindow()
})

// Exit cleanly on request from parent process in development mode.
if (isDevelopment) {
	if (process.platform === 'win32') {
		process.on('message', (data) => {
			if (data === 'graceful-exit') {
				app.quit()
			}
		})
	} else {
		process.on('SIGTERM', () => {
			app.quit()
		})
	}
}